home *** CD-ROM | disk | FTP | other *** search
/ BCI NET / BCI NET Dec 94.iso / archives / programming / libraries / mui20dev.lha / MUI / Developer / Modula / txt / MuiClasses.def next >
Text File  |  1994-02-10  |  7KB  |  207 lines

  1. DEFINITION MODULE MUIClasses;
  2. (*$ IMPLEMENTATION:=FALSE *)
  3.  
  4. (*************************************************************************
  5. ** Structures and Macros for creating custom classes.
  6. **
  7. ** converted for M2 by Christian 'Kochtopf' Scholz
  8. **
  9. **************************************************************************
  10. **
  11. ** $Id: MuiClasses.def 1.1 1994/02/02 09:37:18 Kochtopf Exp $
  12. **
  13. ** $Log: MuiClasses.def $
  14. # Revision 1.1  1994/02/02  09:37:18  Kochtopf
  15. # Initial revision
  16. #
  17. **
  18. **************************************************************************)
  19.  
  20. FROM    SYSTEM      IMPORT ADDRESS, WORD, BYTE;
  21. FROM    IntuitionD  IMPORT ObjectPtr, WindowPtr, ScreenPtr, DrawInfoPtr, IBox,
  22.                            IntuiMessagePtr;
  23. FROM    GraphicsD   IMPORT TextFontPtr, RastPortPtr;
  24.  
  25. (*
  26. ** GENERAL NOTES:
  27. **
  28. ** - Everything described in this header file is only valid within
  29. **   MUI classes. You may never use any of these things out of
  30. **   a class, e.g. in a traditional MUI application.
  31. **
  32. ** - Except when otherwise stated, all structures are strictly read only.
  33. *)
  34.  
  35. (* Pointer-Types *)
  36.  
  37. TYPE mGlobalInfoPtr     = POINTER TO mGlobalInfo;
  38.      mMinMaxPtr         = POINTER TO mMinMax;
  39.      mNotifyDataPtr     = POINTER TO mNotifyData;
  40.      mAreaDataPtr       = POINTER TO mAreaData;
  41.      mRenderInfoPtr     = POINTER TO mRenderInfo;
  42.      mConfigurationPtr  = ADDRESS;
  43.      WORDPtr            = POINTER TO WORD;
  44.  
  45. (* 
  46. ** Type definitions of some important Methods
  47. ** You will need them in your own classes.
  48. *)
  49.  
  50. (* Area *)
  51.  
  52. TYPE    mpAskMinMax     = RECORD
  53.                             id          : LONGINT;
  54.                             MinMaxInfo  : mMinMaxPtr;
  55.                           END;
  56.  
  57.         mpDraw          = RECORD
  58.                             id          : LONGINT;
  59.                             flags       : LONGINT;
  60.                           END;
  61.  
  62.         mpHandleInput   = RECORD
  63.                             id          : LONGINT;
  64.                             imsg        : IntuiMessagePtr;
  65.                             muikey      : LONGINT;
  66.                           END;
  67.  
  68.         mpSetUp         = RECORD
  69.                             id          : LONGINT;
  70.                             RenderInfo  : mRenderInfoPtr;
  71.                           END;
  72.  
  73. (* (partial) instance data of notify class *)
  74.  
  75. TYPE mNotifyData = RECORD
  76.         mndGlobalInfo       : mGlobalInfoPtr;
  77.         mndUserData         : LONGINT;
  78.         priv0               : LONGINT;
  79.         priv1               : LONGINT;
  80.         priv2               : LONGINT;
  81.         priv3               : LONGINT;
  82.         priv4               : LONGINT;
  83.     END;
  84.  
  85.  
  86. (* MUIMinMax structure holds information about minimum, maximum
  87.    and default dimensions of an object. *)
  88.  
  89.      mMinMax = RECORD
  90.                 MinWidth   : WORD;
  91.                 MinHeight  : WORD;
  92.                 MaxWidth   : WORD;
  93.                 MaxHeight  : WORD;
  94.                 DefWidth   : WORD;
  95.                 DefHeight  : WORD;
  96.         END;
  97.  
  98. CONST mMAXMAX = 10000; (* use this if a dimension is not limited. *)
  99.  
  100.  
  101. (* Definitions for madFlags *)
  102.  
  103. TYPE  MADFlags = (drawObject, (* completely redraw yourself *)
  104.                   drawUpdate  (* only update! *)
  105.                   (* rest is private *)
  106.                  );
  107.       MADFlagSet = SET OF MADFlags;
  108.  
  109.  
  110. (* (partial) instance data of area class *)
  111.  
  112. TYPE mAreaData = RECORD
  113.                 madRenderInfo       : mRenderInfoPtr;     (* RenderInfo for this object *)
  114.                 madBackground       : ADDRESS(*mImagePtr*); (* Background Image *)
  115.                 madFont             : TextFontPtr;          (* Font *)
  116.                 madMinMax           : mMinMax;              (* min/max/default sizes *)
  117.                 madBox              : IBox;                 (* position and dimension *)
  118.  
  119.                 madAddLeft          : BYTE;                 (* frame & innerspacing left offset *)
  120.                 madAddTop           : BYTE;                 (* frame & innerspacing top offset *)
  121.                 madSubWidth         : BYTE;                 (* frame & innerspacing add. width *)
  122.                 madSubHeight        : BYTE;                 (* frame & innerspacing add. height *)
  123.  
  124.                 madFlags            : MADFlagSet;           (* see definitions above *)
  125.  
  126.                 (* ... private data follows ... *)
  127.         END;
  128.  
  129.  
  130.  
  131. (* Global information about configuration and parent application. *)
  132.  
  133. TYPE mGlobalInfo = RECORD
  134.                         mgiConfiguration            : mConfigurationPtr;
  135.                         mgiApplicationObject        : ObjectPtr;
  136.                         (* ... private data follows ... *)
  137.                      END;
  138.  
  139. (* MUI's draw pens *)
  140.  
  141. CONST MPENSHINE      =0;
  142. CONST MPENHALFSHINE  =1;
  143. CONST MPENBACKGROUND =2;
  144. CONST MPENHALFSHADOW =3;
  145. CONST MPENSHADOW     =4;
  146. CONST MPENTEXT       =5;
  147. CONST MPENFILL       =6;
  148. CONST MPENCOUNT      =7;
  149.  
  150.  
  151. (* Information on display environment *)
  152.  
  153.  
  154. TYPE mRenderInfo = RECORD
  155.                             mriWindowObject        : ObjectPtr;     (* valid between MUIMSetup/MUIMCleanup *)
  156.  
  157.                             mriScreen              : ScreenPtr;     (* valid between MUIMSetup/MUIMCleanup *)
  158.                             mriDrawInfo            : DrawInfoPtr;   (* valid between MUIMSetup/MUIMCleanup *)
  159.                             mriPens                : WORDPtr;       (* valid between MUIMSetup/MUIMCleanup *)
  160.                             mriWindow              : WindowPtr;     (* valid between MUIMShow/MUIMHide *)
  161.                             mriRastPort            : RastPortPtr;   (* valid between MUIMShow/MUIMHide *)
  162.  
  163.                         (* ... private data follows ... *)
  164.                      END;
  165.     
  166. (* something, in which you can cast your object-pointer *)
  167.  
  168. TYPE    dummyXFC = RECORD
  169.                     mnd : mNotifyData;
  170.                     mad : mAreaData;
  171.                    END;
  172.  
  173.         dummyXFCPtr = POINTER TO dummyXFC;
  174.     
  175.  
  176.    
  177. (* User configurable keyboard events coming with MUIMHandleInput *)
  178.  
  179.  
  180. CONST MUIKEYRELEASE     = -2; (* not a real key, faked when MUIKEYPRESS is released *)
  181. CONST MUIKEYNONE        = -1;
  182. CONST MUIKEYPRESS       =  0;
  183. CONST MUIKEYTOGGLE      =  1;
  184. CONST MUIKEYUP          =  2;
  185. CONST MUIKEYDOWN        =  3;
  186. CONST MUIKEYPAGEUP      =  4;
  187. CONST MUIKEYPAGEDOWN    =  5;
  188. CONST MUIKEYTOP         =  6;
  189. CONST MUIKEYBOTTOM      =  7;
  190. CONST MUIKEYLEFT        =  8;
  191. CONST MUIKEYRIGHT       =  9;
  192. CONST MUIKEYWORDLEFT    = 10;
  193. CONST MUIKEYWORDRIGHT   = 11;
  194. CONST MUIKEYLINESTART   = 12;
  195. CONST MUIKEYLINEEND     = 13;
  196. CONST MUIKEYGADGETNEXT  = 14;
  197. CONST MUIKEYGADGETPREV  = 15;
  198. CONST MUIKEYGADGETOFF   = 16;
  199. CONST MUIKEYWINDOWCLOSE = 17;
  200. CONST MUIKEYWINDOWNEXT  = 18;
  201. CONST MUIKEYWINDOWPREV  = 19;
  202. CONST MUIKEYHELP        = 20;
  203. CONST MUIKEYCOUNT       = 21; (* private *)
  204.  
  205.  
  206. END MUIClasses.
  207.